/**
 * Express 是基于 Node.js 平台，快速、开放、极简的 Web 开发框架
 * 通俗的理解：Express 的作用和 Node.js 内置的 http 模块类似，是专门用来创建 Web 服务器的。
 */

const express = require('express')

const app = express()

app.listen(3000, () => {
    console.log('server is running at http://localhost:3000')
})

/**
 * 监听get请求 
 * 参数1：请求路径
 * 参数2：回调函数，接收两个参数，req 和 res
 *   req：请求对象，保存了客户端传递过来的数据
 *   res：响应对象，提供了响应客户端的方法
 * res.send()：响应客户端
 * req.query：获取客户端传递过来的查询字符串参数
 * req.params：获取客户端传递过来的路由参数
 */
// app.get('/', (req, res) => {
//     res.send('get Hello Express!')
// })

/**
 * 监听post请求
 * 参数1：请求路径
 * 参数2：回调函数，接收两个参数，req 和 res
 *   req：请求对象，保存了客户端传递过来的数据
 *   res：响应对象，提供了响应客户端的方法
 */

app.post('/', (req, res) => {
    res.send('post Hello Express!')
})
// app.get('*', (req, res) => {
//     console.log('req.url:>>> ', req.url)
//     res.sendFile(__dirname + '/static/index.html')
// })

/**
 * 托管静态资源
 * express.static()：托管静态资源
 * 存放静态资源的目录：public
 * Express 在指定的静态目录中查找文件，并对外提供资源的访问路径。因此，存放静态文件的目录名不会出现在 URL 中
 */

// 访问链接 http://localhost:3000/test.txt
// app.use(express.static('public'))

/**
 * 挂载路径前缀
 * 如果希望在托管的静态资源访问路径之前，挂载路径前缀，则可以使用如下的方式
 * 访问链接 http://localhost:3000/static/index.md
 */
app.use('/', express.static('static'))

/**
 * nodemon 是一个 Node.js 开发工具，它可以监听文件的变化并自动重启 Node.js 应用
 */